﻿using System;
using System.Collections.Generic;
using System.ServiceModel;
using entities;

namespace ServiceLibrary
{
    [ServiceContract]
    public interface IManagerService
    {
        #region EMPLOYEE Management

        [OperationContract]
        bool EmpEmailCheck(string email);

        [OperationContract]
        string EmpAdd(string name, bool sex, DateTime birthday, string position, string phone, string email,
                      string address, string city, string country, string jobtitle, byte[] image);

        [OperationContract]
        string EmpModify(string employeeID, string name, bool sex, DateTime birthday, string position, string phone,
                         string email, string address, string city, string country, string jobtitle, byte[] image);

        [OperationContract]
        string EmpDeactive(string employeeID);

        [OperationContract]
        List<vEmployeeSubDetail> EmpGet(bool all);

        [OperationContract]
        Employee EmpGetById(string employeeID);

        [OperationContract]
        List<vEmployeeSubDetail> EmpSearchByName(string val);

        #endregion

        #region ROOM Management

        [OperationContract]
        string EquAdd(string name, decimal price, bool available);

        [OperationContract]
        List<EquipmentDetail> EquGet(bool available);

        [OperationContract]
        EquipmentDetail EquGetByID(int id);

        [OperationContract]
        List<EquipmentDetail> EquGetByName(string name);

        [OperationContract]
        List<EquipmentDetail> EquGetByRoomTypeID(int id);

        [OperationContract]
        string EquModify(int id, string name, decimal price, bool available);

        [OperationContract]
        RoomType RoTyGetByID(int id);

        [OperationContract]
        List<RoomType> RoTyGet();

        [OperationContract]
        string RoTyAdd(string title, string rank, decimal price, bool bath, bool view, bool balcon,
                       List<int> equipmentDetailID);

        [OperationContract]
        string RoTyModify(int id, string title, string rank, decimal price, bool bath, bool view,
                          bool balcony, List<int> equipmentDetailId);

        [OperationContract]
        List<Room> RooGet(int available);

        [OperationContract]
        Room RooGetByID(int id);

        [OperationContract]
        List<Room> RooGetByRoTyID(int roomTypeId);

        [OperationContract]
        string RooAdd(int roomId, int status, int roomTypeId);

        [OperationContract]
        string RooModify(int roomId, int status, int roomTypeId);

        #endregion

        #region "SUPPLY Management"

        [OperationContract]
        string SupDetailAdd(bool available, string supplyName, decimal price, string unit);

        [OperationContract]
        string SupDetailModify(int id, bool available, string supplyName, decimal price, string unit);

        [OperationContract]
        List<SupplyDetail> SupDetailGet(bool available);

        [OperationContract]
        SupplyDetail SupDetailGetById(int id);

        [OperationContract]
        List<SupplyDetail> SupDetailGetByName(string name);

        #endregion
    }
}